<!DOCTYPE html>
<html>
<head>
	<title>排序</title>
	<meta charset="utf-8">
</head>
<body>
算法：
    冒泡排序：
        概念：比较两个相邻的元素，如果前面的数大于后面数，则交换位置。

循环
次数    12,3,45,34,32,22,8,6,49  比较次数
		
0       3,12,34,32,22,8,6,45,49   8  length-1-i
1       3,12,32,22,8,6,34,45      7  length-1-i
2       3,12,22,8,6,32,34         6
3       3,12,8,6,22,32            5
4       3,8,6,12,22               4
5       3,6,8,12                  3
6       3,6,8                     2
7       3,6                       1

<script type="text/javascript">
	function maoPaoOrder(arr){
        for(var i=0;i<arr.length-1;i++){
            for(var j=0;j<arr.length-1-i;j++){
                if(arr[j]>arr[j+1]){
                    arr[j]=arr[j]+arr[j+1];
                    arr[j+1]=arr[j]-arr[j+1];
                    arr[j]=arr[j]-arr[j+1];
                }
            }
        }
        return arr;
    }


</script>

    选择排序：
        概念：从数组的开头开始，将第一个元素和其他元素进行比较，检查完所有元素后，最小的元素会放在数组的第一个位置，然后算法会从第二个位置继续。这个过程一直进行，当进行到数组的倒数第二个位置时，所有的数据便完成了排序

循环
次数    12,3,45,34,32,22,8,6,49  比较次数

<script type="text/javascript">
function selectSort(arr){
    var len = arr.length
    var minIndex,temp
    for(var i=0;i<len-1;i++){
        minIndex = i
        for(var j = i+1;j<len;j++){
            if(arr[j]<arr[minIndex]){
                minIndex=j
            }
        }  
        temp=arr[i]
        arr[i]=arr[minIndex]
        arr[minIndex]=temp
    }
    return arr
}
var arr=[0,5,2]
console.log(selectSort(arr))
</script>

    插入排序
        概念：把一个数插入到有序数组中，从后向前依次对比，如果待插入的数小于对比的那个数，向前移动，带插入的数大于对比的那个数就插入到对比的那个数后面。

循环
次数    12,3,45,34,32,22,8,6,49  比较次数            

<script type="text/javascript">
	for(var i=1;i<arr.length;i++){
        var num=arr[i];
        var j=i-1;
        while(j>=0&&arr[j]>num){
            arr[j+1]=arr[j];
            j--;
        }
        arr[j+1]=num;
    }
    console.log(arr);
</script>

</body>
</html>